package com.demo.java.OD451_500.OD495;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【运维日志排序(B卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/2023Q2
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine()); // 读取日志条数
        List<String> logList = new ArrayList<>();

        // 读取所有时间日志字符串
        for (int i = 0; i < n; i++) {
            logList.add(scanner.nextLine());
        }

        // 排序逻辑：根据时间转换后的毫秒值进行升序排序
        logList.sort(Comparator.comparingLong(OdMain::convertToMilliseconds));

        // 输出排序后的日志
        for (String log : logList) {
            System.out.println(log);
        }

        scanner.close();
    }

    /**
     * 将时间字符串 H:M:S.N 转换为总毫秒数，用于排序比较
     */
    private static long convertToMilliseconds(String timeStr) {
        String[] parts = timeStr.split(":"); // 分割小时和分钟
        String[] secAndMs = parts[2].split("\\."); // 分割秒和毫秒

        int hours = Integer.parseInt(parts[0]);
        int minutes = Integer.parseInt(parts[1]);
        int seconds = Integer.parseInt(secAndMs[0]);
        int milliseconds = Integer.parseInt(secAndMs[1]);

        return hours * 3600_000L + minutes * 60_000L + seconds * 1000L + milliseconds;
    }
}